﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Text;
using Abp.AutoMapper;
using Abp.Domain.Entities;
using Abp.Domain.Entities.Auditing;
using FwProject.Comm.ExcelUtil;
using FwProject.Core.SettlementInfoModel;

namespace FwProject.Restaurant.Dto
{
    [AutoMap(typeof(DepositInfo))]
    [DisplayName(displayName: "押金")]
    public class DepositDto : Entity<Guid>
    {
        /// <summary>
        /// 工厂编号
        /// </summary>
        [Display(Name = "所属工厂")]
        public Guid FactoryinfoId { get; set; }
        /// <summary>
        /// 餐厅编号
        /// </summary>
        [Display(Name = "餐厅名称")]
        public Guid RestaurantId { get; set; }
        public RestaurantDto RestaurantInfoModel { get; set; }

        [DisplayName(displayName: "餐厅名称")]
        [ExcelDateMember]
        public string RestaurantName { get; set; }

        /// <summary>
        /// 账户编号
        /// </summary>
        [Display(Name = "账户编号")]
        public Guid CapitalAccountId { get; set; }
        /// <summary>
        /// 账号
        /// </summary>
        [Display(Name = "账号")]
        [DisplayName(displayName: "账号")]
        [ExcelDateMember]
        public string AccountNo { get; set; }
        /// <summary>
        /// 账户名称
        /// </summary>
        [Display(Name = "账户名称")]
        [DisplayName(displayName: "账户名称")]
        [ExcelDateMember]
        public string AccountName { get; set; }
        /// <summary>
        /// 押金单号
        /// </summary>
        [Display(Name = "押金单号")]
        [DisplayName(displayName: "押金单号")]
        [ExcelDateMember]
        public string CreationNumber { get; set; }
        /// <summary>
        /// 金额
        /// </summary>
        [Display(Name = "金额")]
        [DisplayName(displayName: "金额")]
        [ExcelDateMember(IsSum = true)]
        public decimal Money { get; set; } = 0.0m;
        /// <summary>
        /// 经办人编号
        /// </summary>
        [Display(Name = "经办人编号")]
        public long AgentPeoperUserId { get; set; }
        /// <summary>
        /// 经办人姓名
        /// </summary>
        [Display(Name = "经办人")]
        [DisplayName(displayName: "经办人")]
        [ExcelDateMember]
        public string AgentPeoper { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        [Display(Name = "备注")]
        [DisplayName(displayName: "备注")]
        [ExcelDateMember]
        public string RemarkContent { get; set; }
        /// <summary>
        /// 收退方式
        /// </summary>
        [Display(Name = "收退类型")]
        [DisplayName(displayName: "收退类型")]
        [ExcelDateMember]
        public DepositType DepositType { get; set; } = DepositType.收押金;

        [DisplayName(displayName: "状态")]
        [ExcelDateMember]
        public DepositStatus DepositStatus { get; set; } = DepositStatus.未提交;
        public long? CreatorUserId { get; set; }

        [DisplayName(displayName: "押金收退时间")]
        [ExcelDateMember]
        public DateTime DepositTime { get; set; }
    }
}
